home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / gg / ncurses-5.3.lha / ncurses-5.3 / include / MKterm.h.awk < prev    next >
Text File  |  2002-10-24  |  14KB  |  310 lines

  1. BEGIN        {
  2.             print  "/****************************************************************************"
  3.             print  " * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *"
  4.             print  " *                                                                          *"
  5.             print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
  6.             print  " * copy of this software and associated documentation files (the            *"
  7.             print  " * \"Software\"), to deal in the Software without restriction, including      *"
  8.             print  " * without limitation the rights to use, copy, modify, merge, publish,      *"
  9.             print  " * distribute, distribute with modifications, sublicense, and/or sell       *"
  10.             print  " * copies of the Software, and to permit persons to whom the Software is    *"
  11.             print  " * furnished to do so, subject to the following conditions:                 *"
  12.             print  " *                                                                          *"
  13.             print  " * The above copyright notice and this permission notice shall be included  *"
  14.             print  " * in all copies or substantial portions of the Software.                   *"
  15.             print  " *                                                                          *"
  16.             print  " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *"
  17.             print  " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *"
  18.             print  " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *"
  19.             print  " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *"
  20.             print  " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *"
  21.             print  " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *"
  22.             print  " * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *"
  23.             print  " *                                                                          *"
  24.             print  " * Except as contained in this notice, the name(s) of the above copyright   *"
  25.             print  " * holders shall not be used in advertising or otherwise to promote the     *"
  26.             print  " * sale, use or other dealings in this Software without prior written       *"
  27.             print  " * authorization.                                                           *"
  28.             print  " ****************************************************************************/"
  29.             print  ""
  30.             print  "/****************************************************************************/"
  31.             print  "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995                */"
  32.             print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
  33.             print  "/****************************************************************************/"
  34.             print  ""
  35.             print  "/* $Id: MKterm.h.awk.in,v 1.41 2001/12/23 01:04:38 tom Exp $ */"
  36.             print  ""
  37.             print  "/*"
  38.             print  "**    term.h -- Definition of struct term"
  39.             print  "*/"
  40.             print  ""
  41.             print  "#ifndef NCURSES_TERM_H_incl"
  42.             print  "#define NCURSES_TERM_H_incl 1"
  43.             print  ""
  44.             print  "#undef  NCURSES_VERSION"
  45.             print  "#define NCURSES_VERSION \"5.3\""
  46.             print  ""
  47.             print  "#include <ncurses_dll.h>"
  48.             print  ""
  49.             print  "#ifdef __cplusplus"
  50.             print  "extern \"C\" {"
  51.             print  "#endif"
  52.             print  ""
  53.             print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
  54.             print  " * definition (based on the system for which this was configured)."
  55.             print  " */"
  56.             print  ""
  57.             print  "#undef  HAVE_TERMIOS_H"
  58.             print  "#define HAVE_TERMIOS_H 1/*default*/"
  59.             print  ""
  60.             print  "#undef  HAVE_TCGETATTR"
  61.             print  "#define HAVE_TCGETATTR 1/*default*/"
  62.             print  ""
  63.             print  "#undef  NCURSES_CONST"
  64.             print  "#define NCURSES_CONST /*nothing*/"
  65.             print  ""
  66.             print  "#undef  NCURSES_XNAMES"
  67.             print  "#define NCURSES_XNAMES 1"
  68.             print  ""
  69.             print  "/* We will use these symbols to hide differences between"
  70.             print  " * termios/termio/sgttyb interfaces."
  71.             print  " */"
  72.             print  "#undef  TTY"
  73.             print  "#undef  SET_TTY"
  74.             print  "#undef  GET_TTY"
  75.             print  ""
  76.             print  "/* Assume POSIX termio if we have the header and function */"
  77.             print  "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
  78.             print  ""
  79.             print  "#undef  TERMIOS"
  80.             print  "#define TERMIOS 1"
  81.             print  ""
  82.             print  "#include <termios.h>"
  83.             print  "#define TTY struct termios"
  84.             print  ""
  85.             print  "#else /* !HAVE_TERMIOS_H */"
  86.             print  ""
  87.             print  "#if HAVE_TERMIO_H"
  88.             print  ""
  89.             print  "#undef  TERMIOS"
  90.             print  "#define TERMIOS 1"
  91.             print  ""
  92.             print  "#include <termio.h>"
  93.             print  "#define TTY struct termio"
  94.             print  ""
  95.             print  "/* Add definitions to make termio look like termios."
  96.             print  " * But ifdef it, since there are some implementations"
  97.             print  " * that try to do this for us in a fake <termio.h>."
  98.             print  " */"
  99.             print  "#ifndef TCSANOW"
  100.             print  "#define TCSANOW TCSETA"
  101.             print  "#endif"
  102.             print  "#ifndef TCSADRAIN"
  103.             print  "#define TCSADRAIN TCSETAW"
  104.             print  "#endif"
  105.             print  "#ifndef TCSAFLUSH"
  106.             print  "#define TCSAFLUSH TCSETAF"
  107.             print  "#endif"
  108.             print  "#ifndef tcsetattr"
  109.             print  "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
  110.             print  "#endif"
  111.             print  "#ifndef tcgetattr"
  112.             print  "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
  113.             print  "#endif"
  114.             print  "#ifndef cfgetospeed"
  115.             print  "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
  116.             print  "#endif"
  117.             print  "#ifndef TCIFLUSH "
  118.             print  "#define TCIFLUSH 0"
  119.             print  "#endif"
  120.             print  "#ifndef TCOFLUSH "
  121.             print  "#define TCOFLUSH 1"
  122.             print  "#endif"
  123.             print  "#ifndef TCIOFLUSH "
  124.             print  "#define TCIOFLUSH 2"
  125.             print  "#endif"
  126.             print  "#ifndef tcflush"
  127.             print  "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
  128.             print  "#endif"
  129.             print  ""
  130.             print  "#else /* !HAVE_TERMIO_H */"
  131.             print  ""
  132.             print  "#undef TERMIOS"
  133.             print  "#include <sgtty.h>"
  134.             print  "#include <sys/ioctl.h>"
  135.             print  "#define TTY struct sgttyb"
  136.             print  ""
  137.             print  "#endif /* HAVE_TERMIO_H */"
  138.             print  ""
  139.             print  "#endif /* HAVE_TERMIOS_H */"
  140.             print  ""
  141.             print  "#ifdef TERMIOS"
  142.             print  "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
  143.             print  "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
  144.             print  "#else"
  145.             print  "#define GET_TTY(fd, buf) gtty(fd, buf)"
  146.             print  "#define SET_TTY(fd, buf) stty(fd, buf)"
  147.             print  "#endif"
  148.             print  ""
  149.             print  "#define NAMESIZE 256"
  150.             print  ""
  151.             print  "#define CUR cur_term->type."
  152.             print  ""
  153.         }
  154.  
  155. $2 == "%%-STOP-HERE-%%"    {
  156.             print  ""
  157.             printf "#define BOOLWRITE %d\n", BoolCount
  158.             printf "#define NUMWRITE  %d\n", NumberCount
  159.             printf "#define STRWRITE  %d\n", StringCount
  160.             print  ""
  161.             print  "/* older synonyms for some capabilities */"
  162.             print  "#define beehive_glitch    no_esc_ctlc"
  163.             print  "#define teleray_glitch    dest_tabs_magic_smso"
  164.             print  "#define micro_char_size micro_col_size"
  165.             print  ""
  166.             print  "#ifdef __INTERNAL_CAPS_VISIBLE"
  167.         }
  168.  
  169. /^#/        {next;}
  170.  
  171. $1 == "acs_chars"    {acsindex = StringCount}
  172.  
  173. $3 == "bool"    {
  174.             printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
  175.         }
  176.  
  177. $3 == "num"    {
  178.             printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
  179.         }
  180.  
  181. $3 == "str"    {
  182.             printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
  183.         }
  184.  
  185. END        {
  186.             print  "#endif /* __INTERNAL_CAPS_VISIBLE */"
  187.             print  ""
  188.             print  ""
  189.             print  "/*"
  190.             print  " * Predefined terminfo array sizes"
  191.             print  " */"
  192.             printf "#define BOOLCOUNT %d\n", BoolCount
  193.             printf "#define NUMCOUNT  %d\n", NumberCount
  194.             printf "#define STRCOUNT  %d\n", StringCount
  195.             print  ""
  196.             print  "/* used by code for comparing entries */"
  197.             print  "#define acs_chars_index    ", acsindex
  198.             print  ""
  199.             print  "typedef struct termtype {    /* in-core form of terminfo data */"
  200.             print  "    char  *term_names;        /* str_table offset of term names */"
  201.             print  "    char  *str_table;        /* pointer to string table */"
  202.             print  "    char  *Booleans;        /* array of boolean values */"
  203.             print  "    short *Numbers;        /* array of integer values */"
  204.             print  "    char  **Strings;        /* array of string offsets */"
  205.             print  ""
  206.             print  "#if NCURSES_XNAMES"
  207.             print  "    char  *ext_str_table;    /* pointer to extended string table */"
  208.             print  "    char  **ext_Names;        /* corresponding names */"
  209.             print  ""
  210.             print  "    unsigned short num_Booleans;/* count total Booleans */"
  211.             print  "    unsigned short num_Numbers;    /* count total Numbers */"
  212.             print  "    unsigned short num_Strings;    /* count total Strings */"
  213.             print  ""
  214.             print  "    unsigned short ext_Booleans;/* count extensions to Booleans */"
  215.             print  "    unsigned short ext_Numbers;    /* count extensions to Numbers */"
  216.             print  "    unsigned short ext_Strings;    /* count extensions to Strings */"
  217.             print  "#endif /* NCURSES_XNAMES */"
  218.             print  ""
  219.             print  "} TERMTYPE;"
  220.             print  ""
  221.             print  "typedef struct term {        /* describe an actual terminal */"
  222.             print  "    TERMTYPE    type;        /* terminal type description */"
  223.             print  "    short    Filedes;    /* file description being written to */"
  224.             print  "    TTY        Ottyb,        /* original state of the terminal */"
  225.             print  "        Nttyb;        /* current state of the terminal */"
  226.             print  "    int        _baudrate;    /* used to compute padding */"
  227.             print  "} TERMINAL;"
  228.             print  ""
  229.             print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
  230.             print  ""
  231.             print  "#if BROKEN_LINKER"
  232.             print  "#define boolnames  _nc_boolnames()"
  233.             print  "#define boolcodes  _nc_boolcodes()"
  234.             print  "#define boolfnames _nc_boolfnames()"
  235.             print  "#define numnames   _nc_numnames()"
  236.             print  "#define numcodes   _nc_numcodes()"
  237.             print  "#define numfnames  _nc_numfnames()"
  238.             print  "#define strnames   _nc_strnames()"
  239.             print  "#define strcodes   _nc_strcodes()"
  240.             print  "#define strfnames  _nc_strfnames()"
  241.             print  ""
  242.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);"
  243.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);"
  244.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);"
  245.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);"
  246.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);"
  247.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);"
  248.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);"
  249.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);"
  250.             print  "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);"
  251.             print  ""
  252.             print  "#else"
  253.             print  ""
  254.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
  255.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
  256.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
  257.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
  258.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
  259.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
  260.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
  261.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
  262.             print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
  263.             print  ""
  264.             print  "#endif"
  265.             print  ""
  266.             print  "/* internals */"
  267.             print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
  268.             print  "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);"
  269.             print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
  270.             print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);"
  271.             print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
  272.             print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
  273.             print  "extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);"
  274.             print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
  275.             print  ""
  276.             print  "/* entry points */"
  277.             print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
  278.             print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
  279.             print  ""
  280.             print  "/* miscellaneous entry points */"
  281.             print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
  282.             print  "extern NCURSES_EXPORT(int) setupterm (NCURSES_CONST char *,int,int *);"
  283.             print  ""
  284.             print  "/* terminfo entry points, also declared in curses.h */"
  285.             print  "#if !defined(__NCURSES_H)"
  286.             print  "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
  287.             print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);"
  288.             print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
  289.             print  "extern NCURSES_EXPORT(int) putp (const char *);"
  290.             print  "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
  291.             print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
  292.             print  "#endif /* __NCURSES_H */"
  293.             print  ""
  294.             print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
  295.             print  "#if !defined(NCURSES_TERMCAP_H_incl)"
  296.             print  "extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);"
  297.             print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
  298.             print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
  299.             print  "extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);"
  300.             print  "extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);"
  301.             print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
  302.             print  "#endif /* NCURSES_TERMCAP_H_incl */"
  303.             print  ""
  304.             print  "#ifdef __cplusplus"
  305.             print  "}"
  306.             print  "#endif"
  307.             print  ""
  308.             print  "#endif /* NCURSES_TERM_H_incl */"
  309.         }
  310.